---
title: "Oficina GECAT de tratamento de dados"
author: "Vagner e Patrícia"
date: "2023-04-26"
output: powerpoint_presentation
bibliography: references.bib
---

# Instalar e carregar pacotes

```{r}
pacotes <- c("AER","base", "basictabler", "bibtex","BiocManager", "bookdown","caper", "car","caret", "conflicted","correlation","corrplot","cowplot","DescTools","distill","dplyr","encrptr","factoextra","FactoMineR", "faraway","fastDummies","flextable","foreign","gdata", "ggrepel","ggtree",     "ggplot2","ggpubr","graphics", "grid","gridExtra","gtsummary","Hmisc","httr2","jsmodule", "jtools","knitr","kableExtra","knitLatex","lmtest", "lubridate","magick","margins", "marginaleffects", "MASS", "MatchIt","mfx","mgcv","minqa","modelr" ,"mgcv","nnet","nortest","OddsPlotty","papaja", "pandoc","palmerpenguins","performance", "pglm","plm","plotly","plotly", "pROC","pscl","psych","rddtools","readr", "regclass","rJava", "readxl","RefManageR", "remotes", "reshape2", "repos", "report","ReporteRs","reshape2","rgl","rlang","rmarkdown","Rmisc","ROCR","RSelenium", "scales","sjlabelled", "stargazer","stats","stringr", "stringi","texreg","tidyr","tidyverse", "tinytex","tseries","truncnorm", "visreg","viridis", "xfun","xlsx","xtable","wesanderson", "writexl","vdr")
if(sum(as.numeric(!pacotes %in% installed.packages())) != 0){
  instalador <- pacotes[!pacotes %in% installed.packages()]
  for(i in 1:length(instalador)) {
    install.packages(instalador, dependencies = T)
    break()}
  sapply(pacotes, require, character = T)
} else {
  sapply(pacotes, require, character = T)
}
```

# Importar base de dados

Duas possibilidades:

-   Importar o "R Workspace"

    -   formato .RData
    -   Item do Environment "pastinha"
    -   Comando

```{r}
load("C:/Users/Usuário/OneDrive/Oficina Tratamento de Dados/EnvironmentOficinaR.RData")
```

-   Importar a base do Excel

    -   Item do Environment "planilha"
    -   Comando

```{r}
# install.packages("readxl") #Instalando o pacote para importar arquivo em excel
# library(readxl) #Carregando o pacote

bd1 <- read_excel("C:/Users/Usuário/OneDrive/Oficina Tratamento de Dados/bd1.xlsx", 
   # sheet = "Planilha 1",
   col_types = c("text", "numeric", "numeric", 
                 "numeric", "numeric", "numeric", 
                 "numeric", "numeric", "text", 
                 "date", "date", "text", "text", "text"))

View(bd1) #Visualizando a base de dados
```

# Juntar bases

## Mas antes...

-   É preciso conferir:

    -   Moeda
    -   Unidade dos dados
    -   O que tem nas bases (nome das colunas)

```{r}
names(bd1)
names(bd2)
names(bd3)
names(bd4)
```

-   Conferindo os países

```{r}
unique(bd1$Country) #Nomes

Country.tb <- table(bd1$Country) #Frequência
prop.table(Country.tb)
```

-   Conferindo NAs

```{r}
apply(apply(bd1,2,is.na),2,sum)
# ou
sapply(bd1, function(x) sum(is.na(x)))
```

**bd1:**

Amostra: Brasil, Argentina e Canada

Período: 2018-2021

Variáveis: Ticker, Year, Assets, Current_Assets, Liabilities, Current_Liabilities, Total_Equity, Inventory, Name, IPO_Date, Cancellation_Date, NAICS_Sector, TRBC_Sector, Country.

**bd2:**

Amostra: Brasil, Argentina e Canada

Período: 2022

Variáveis: Ticker, Year, Current_Assets, Liabilities, Current_Liabilities, Total_Equity, Inventory, Name, IPO_Date, Cancellation_Date, NAICS_Sector, TRBC_Sector, Country.

**bd3:**

Amostra: Brasil, Argentina e Canada

Período: 2018-2022

Variáveis: Ticker, Year, Auditor, Auditor_Tenure, Audit_Board, Audit_Committee_Independence, Earnings_Restatement, Cash_Equivalents, PPE, Receivables, Notes_Payable_Short_Term, Income_Taxes_Payable, Net_Income_Before_Taxes, Share_Amount, EBITDA, EBIT, EPS_Real, Cost_of_Revenue, Revenue, Net_Income_Before_Extraordinary_Items, Operating_Expense, Operating_Income, Income_Tax, Taxes_Payable, CFO, CFI, CFF, Depreciation, Period_And_Date, Announcement_Date, Provisioned Tax, WACC Inflation Adjusted Risk Free Rate, Price, MV, Forecast_Date, EPS_Forecast, Number_Estimates, AUD, Big4.

**bd4:**

Amostra: Brasil, Argentina e Canada

Período: 2022

Variáveis: Ticker, Year, Assets.

## Agora sim:

juntar colunas: cbind()

juntar linhas: rbind()

\*em ambos cbind(rbind), ordem e quantidade de linhas(colunas) precisam ser as mesmas entre as bases

-   Juntar linhas - rbind (bd1 e bd2) Verificando colunas

```{r}
names(bd1)
names(bd2) #Verificar que bd2 não tem a variável "Assets"
```

Criando coluna "Assets" em bd2

```{r}
bd2 <- bd2 %>%
  dplyr::mutate(Assets = NA)

names(bd2)
```

Ordenando as colunas/variáveis

```{r}
bd2 <- bd2 %>% 
  dplyr::select(1,2,14,3:13)

names(bd2)
```

Juntando as linhas

```{r}
#juntando dados de 2022 a bd1 que tinha apenas 2018-2021
Base_GECAT <- rbind(bd1,bd2) 
```

-   Juntar colunas - cbind (Base_GECAT e bd3)

Linhas entre as bases devem estar na mesma posição

```{r}
Exemplo_erro1 <- cbind(Base_GECAT,bd3) #Vai juntar dados de observações diferentes
```

-   Juntar colunas - right_join X left_join (Base_GECAT e bd3)

Se as linhas não estiverem na mesma posiçao ou as bases não tiverem a mesma quantidade de linhas: Juntando por Código e Ano

```{r}
bd3.1 <- bd3 %>%
   dplyr::filter(PPE != "NA") #criando uma base "menor", limpa da NA na variável PPE
```

Qual das bases tem o dado mais relevante? "Base_GECAT" ou "bd3.1"?

```{r}
# Se for "Base_GECAT":
Base_GECAT_1.1 <- bd3.1 %>%
  right_join(Base_GECAT, by = c("Ticker", "Year")) 
#ou
Base_GECAT_1.2 <- Base_GECAT %>%
  left_join(bd3.1, by = c("Ticker", "Year")) 

# Se for "bd3.1":
Base_GECAT_2.1 <- Base_GECAT %>%
  right_join(bd3.1, by = c("Ticker", "Year")) 
#ou
Base_GECAT_2.2 <- bd3.1 %>%
  left_join(Base_GECAT, by = c("Ticker", "Year")) 

#Observar que a ordem das colunas vai variar ;)
```

-   Preencher quando já existe a linha e a coluna (Base_GECAT e bd4) (join, e depois atribuir o valor a coluna de interesse se NA)

```{r}
Base_GECAT_Oficina <- Base_GECAT %>%
  left_join(bd3, by = c("Ticker", "Year")) %>%
  left_join(bd4, by = c("Ticker", "Year")) 

names(Base_GECAT_Oficina) #observem que vai criar duas de "Assets": Assets.x e Assets.y
```

Verificando as duas colunas de "Assets" criadas

```{r}
summary(Base_GECAT_Oficina$Assets.x)
summary(Base_GECAT_Oficina$Assets.y)
```

Atribuindo para "Assets.x" os valores de "Assets.y

```{r}
Base_GECAT_Oficina <- Base_GECAT_Oficina %>%
  dplyr::mutate(Assets.x = ifelse(is.na(Assets.x),Assets.y,Assets.x))

#Verificando se os missings em Assets.x foram preenchidos
summary(Base_GECAT_Oficina$Assets.x)
summary(Base_GECAT_Oficina$Assets.y)
```

# Excluir linhas, colunas e bases

## Excluir linhas

Excluindo linhas duplicadas

```{r}
Base_GECAT_Oficina <- Base_GECAT_Oficina %>%
  dplyr::distinct(Ticker, Year, .keep_all = TRUE)
```

Excluindo linhas de observações que não quero

```{r}
#Se eu quero excluir dados de brasileiras de 2022

# Caminho 1 - Escolher quem NÃo quero
Base_GECAT_Oficina.1 <- Base_GECAT_Oficina %>%
   dplyr::filter(Year != 2022 | Country != "Brazil") 

# Caminho 2 - Escolher quem quero
Base_GECAT_Oficina.2 <- Base_GECAT_Oficina %>%
   dplyr::filter(Year == 2018 | Year == 2019 | Year == 2020 | Year == 2021 | Country == "Argentina" | Country == "Canada") 
```

## Excluir colunas

```{r}
names(Base_GECAT_Oficina) #Verificando quais colunas que não quer e o número delas
```

3 formas de fazer a exclusão

```{r}
# Atribuir NULL
Base_GECAT_Oficina.3 <- Base_GECAT_Oficina 
Base_GECAT_Oficina.3$Assets.y <- NULL

# Selecionar as colunas que quer
Base_GECAT_Oficina.4 <- Base_GECAT_Oficina %>%
  dplyr::select(1:51)

# Selecionar a(s) coluna(s) que NÃO quer
Base_GECAT_Oficina.5 <- Base_GECAT_Oficina %>%
  dplyr::select(-52)
```

## Excluir base

```{r}
rm(Exemplo_erro1,Base_GECAT,Base_GECAT_1.1,Base_GECAT_1.2,Base_GECAT_2.1,Base_GECAT_2.2)

rm(Base_GECAT_Oficina.1,Base_GECAT_Oficina.2,Base_GECAT_Oficina.3,Base_GECAT_Oficina.4)
```

# Ordenar Variáveis

Verificando o número de cada coluna

```{r}
names(Base_GECAT_Oficina.5)
```

Ordenando pelo número da coluna

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.5 %>% 
  dplyr::select(1,2,9,14,12:13,10:11,3:8,15:51) 


names(Base_GECAT_Oficina.6)
```

# Renomear Variáveis

Verificando o número de cada coluna

```{r}
names(Base_GECAT_Oficina.6)
```

Renomeando as Colunas/Variáveis

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::rename(Total_Assets = 9,
                Total_Liabilities = 11) %>%
  dplyr::filter(Total_Assets != "NA")

names(Base_GECAT_Oficina.6)
```

# Visualizar NAs

```{r}
apply(apply(Base_GECAT_Oficina.6,2,is.na),2,sum)
# ou
sapply(Base_GECAT_Oficina.6, function(x) sum(is.na(x)))
```

## Excluindo linhas com NAs

```{r}
Base_GECAT_Oficina.7 <- Base_GECAT_Oficina.6 %>%
  dplyr::filter(!is.na(PPE))

#ou

Base_GECAT_Oficina.8 <- Base_GECAT_Oficina.6 %>%
  dplyr::filter(PPE != "NA")
```

# Criar variáveis

## Criar variável de Dia, Mês ou Ano a partir da data

Criando variável de ano do IPO a partir da data completa

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>% 
  dplyr::mutate(IPO = IPO_Date) #Criando a coluna nova

Base_GECAT_Oficina.6$IPO <- format(Base_GECAT_Oficina.6$IPO, format = "%Y") #Isolando o ano

Base_GECAT_Oficina.6$IPO <- as.numeric(Base_GECAT_Oficina.6$IPO) #Transformando para numérica

view(Base_GECAT_Oficina.6) #Visualizando a base
```

## Criar variáveis qualitativas

### Criando *dummies*

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(AC = ifelse(Audit_Board=="TRUE", 1, 0),
                COV = ifelse(Year==2020 | Year==2021, 1, 0),
                Rest = ifelse(Earnings_Restatement=="TRUE", 1, 0))

summary(Base_GECAT_Oficina.6)
```

### Variáveis de grupo de tratamento/controle

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(Emerg = ifelse(Country=="Argentina" | Country=="Brazil", 1, 0), #1= países emergentes
                Common_Law = ifelse(Country=="Canada", 1, 0)) #1= países common law
         

summary(Base_GECAT_Oficina.6)
```

### Variáveis de evento

```{r}
#Adoção da ISA701
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(POST = ifelse(Country == "Argentina" & Year>2019 , 1,
                             ifelse(Country == "Brazil" & Year>2015 , 1,
                                    ifelse(Country == "Canada" & Year>2018 , 1, 0)))) #1= após a adoção da norma em cada país

summary(Base_GECAT_Oficina.6)
```

### Criando variável de ciclo de vida segundo @dickinson2011

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
         dplyr::mutate(LCS = ifelse(CFO<0 & CFI<0 & CFF>0, "Birth",
                      ifelse(CFO>0 & CFI<0 & CFF>0, "Growth",
                             ifelse(CFO>0 & CFI<0 & CFF<0, "Mature",
                                    ifelse(CFO<0 & CFI<0 & CFF<0, "ShakeOut",
                                           ifelse(CFO>0 & CFI>0 & CFF>0, "ShakeOut",
                                                  ifelse(CFO>0 & CFI>0 & CFF<0, "ShakeOut",
                                                         ifelse(CFO<0 & CFI>0 & CFF>0, "Decline",
                                                                ifelse(CFO<0 & CFI>0 & CFF<0, "Decline", NA)))))))),
                      #ordenar e recodificar variáveis string
                      LCS = recode_factor(LCS,"Birth" = "Introducao",
                                          "Growth" = "Crescimento",
                                          "Mature" = "Maturidade",
                                          "ShakeOut" = "Turbulencia",
                                          "Decline" = "Declinio", .ordered = T)) 

unique(Base_GECAT_Oficina.6$LCS)
```

### Criando variáveis de identificação do auditor

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate_at(c("Auditor"), ~replace(., is.na(.), "NAUD")) %>%
  dplyr::mutate(AUD = ifelse(grepl("NAUD",Auditor), "NAUD",
                            ifelse(grepl("KPMG", Auditor), "KPMG",
                                  ifelse(grepl("kpmg", Auditor), "KPMG",
                                        ifelse(grepl("Kpmg", Auditor), "KPMG", 
                                              ifelse(grepl("EY", Auditor), "EY",
                                                    ifelse(grepl("Ey", Auditor), "EY",
                                                          ifelse(grepl("ey", Auditor), "EY",
                                                                ifelse(grepl("ERNST", Auditor), "EY",
                                                                      ifelse(grepl("ernst", Auditor), "EY",
                                                                             ifelse(grepl("deloitte", Auditor), "DTT",
                                                                                     ifelse(grepl("deloite", Auditor), "DTT",
                                                                                             ifelse(grepl("DELOITTE", Auditor), "DTT",
                                                                                                    ifelse(grepl("DELOITE", Auditor), "DTT",
                                                                                                          ifelse(grepl("Delloite", Auditor), "DTT",
                                                                                                                  ifelse(grepl("pwc", Auditor), "PWC", 
                                                                                                                          ifelse(grepl("PWC", Auditor), "PWC", 
                                                                                                                                  ifelse(grepl("Pwc", Auditor), "PWC", 
                                                                                                                                          ifelse(grepl("WATERHOUSE", Auditor), "PWC", 
                                                                                                                                                  ifelse(grepl("PwC", Auditor), "PWC", 
                                                                                                                                                          ifelse(grepl("Waterhouse", Auditor), "PWC", 
                                                                                                                                                                  ifelse(grepl("waterhouse", Auditor), "PWC", 
                                                                                                                                                                         ifelse(grepl("delloitte", Auditor), "DTT",
                                                                                                                                                                                ifelse(grepl("Ernst", Auditor), "EY",
                                                                                                                                                                                       ifelse(grepl("Deloitte", Auditor), "DTT","NBIG4")))))))))))))))))))))))),
         AU = ifelse(grepl("KPMG",AUD), 1,
                            ifelse(grepl("EY", AUD), 1,
                                  ifelse(grepl("DTT", AUD), 1,
                                        ifelse(grepl("PWC", AUD), 1, 
                                              ifelse(grepl("NBIG4", AUD), 0, NA))))),
         #ordenar (e recodificar) variáveis string
         AUD = recode_factor(AUD,"NAUD" = "NAUD",
                             "NBIG4" = "NBIG4",
                             "DTT" = "DTT",
                             "EY" = "EY",
                             "KPMG" = "KPMG",
                             "PWC" = "PWC", .ordered = T)) 

unique(Base_GECAT_Oficina.6$Auditor)
unique(Base_GECAT_Oficina.6$AUD)
unique(Base_GECAT_Oficina.6$AU)
```

## Criar variáveis contínuas

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(ANC = Total_Assets-Current_Assets,
                PNC = Total_Liabilities-Current_Liabilities,
                SIZE = log(Total_Assets),
                Price = ifelse(is.na(Price),MV/Share_Amount,Price),
                MV = ifelse(is.na(MV),Price*Share_Amount,MV),
                BTM = MV/Total_Equity)

summary(Base_GECAT_Oficina.6)
```

## Criar variável com a quantidade de observações de um individuo em conjunto de dados em painel

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::arrange(Ticker, Year) %>%
  dplyr::group_by(Ticker) %>%
  dplyr::mutate(obser = cumsum(n()),
                obser_2 = cumsum(row_number() <= Year)) %>%
  ungroup()

view(Base_GECAT_Oficina.6)
```

# Transformar variáveis

## Variáveis contínuas

Winsorizando

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(SIZE_w1 = Winsorize(SIZE, probs = c(0.01, 0.99),na.rm = TRUE),
                SIZE_w2 = Winsorize(SIZE, probs = c(0.02, 0.98),na.rm = TRUE),
                SIZE_w5 = Winsorize(SIZE, probs = c(0.025, 0.975),na.rm = TRUE))

boxplot(Base_GECAT_Oficina.6$Total_Assets)
boxplot(Base_GECAT_Oficina.6$SIZE)
boxplot(Base_GECAT_Oficina.6$SIZE_w1)
boxplot(Base_GECAT_Oficina.6$SIZE_w2)
boxplot(Base_GECAT_Oficina.6$SIZE_w5)

hist(Base_GECAT_Oficina.6$Total_Assets)
hist(Base_GECAT_Oficina.6$SIZE)
hist(Base_GECAT_Oficina.6$SIZE_w1)
hist(Base_GECAT_Oficina.6$SIZE_w2)
hist(Base_GECAT_Oficina.6$SIZE_w5)
```

Logaritimizando

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(ESTIM = log(Number_Estimates),
                AT = log(Auditor_Tenure))

hist(Base_GECAT_Oficina.6$Number_Estimates)
hist(Base_GECAT_Oficina.6$ESTIM)

hist(Base_GECAT_Oficina.6$Auditor_Tenure)
hist(Base_GECAT_Oficina.6$AT)
```

Inversa

```{r}
Base_GECAT_Oficina.6 <- Base_GECAT_Oficina.6 %>%
  dplyr::mutate(ESTIM_Inv = 1/Number_Estimates,
                AT_Inv = 1/Auditor_Tenure,
                SIZE_Inv = 1/SIZE)

hist(Base_GECAT_Oficina.6$Number_Estimates)
hist(Base_GECAT_Oficina.6$ESTIM_Inv)

hist(Base_GECAT_Oficina.6$Auditor_Tenure)
hist(Base_GECAT_Oficina.6$AT_Inv)

hist(Base_GECAT_Oficina.6$SIZE)
hist(Base_GECAT_Oficina.6$SIZE_Inv)
boxplot(Base_GECAT_Oficina.6$SIZE)
boxplot(Base_GECAT_Oficina.6$SIZE_Inv)
```

Normalização

<https://medium.com/data-hackers/normalizar-ou-padronizar-as-vari%C3%A1veis-3b619876ccc9>

```{r}
#Normalizar
Base_GECAT_Oficina.6$SIZE_Norm <- scales::rescale(Base_GECAT_Oficina.6$SIZE)

hist(Base_GECAT_Oficina.6$SIZE)
hist(Base_GECAT_Oficina.6$SIZE_Norm)
```

# Agrupar variáveis para diminuir tamanho do código (Across)

<https://dplyr.tidyverse.org/reference/across.html>

```{r}
#logaritmizar colunas numéricas
Base_GECAT_Oficina.7 <- Base_GECAT_Oficina.7 %>%
  dplyr::mutate(across(.cols = where(is.numeric),
                .fns = ~log(.x),
                .names = "{.col}_log")) 

#winsorizar colunas numéricas
Base_GECAT_Oficina.7 <- Base_GECAT_Oficina.7 %>%
  dplyr::mutate(across(.cols = where(is.numeric),
                .fns = ~Winsorize(.x, probs = c(0.01, 0.99),na.rm = TRUE),
                .names = "{.col}_w1")) 

view(Base_GECAT_Oficina.7)
```

# Analisar variáveis

## Tipo de Variável

```{r}
class(Base_GECAT_Oficina.6$SIZE)
class(Base_GECAT_Oficina.6$Country)
```

## Frequência de variáveis categóricas

```{r}
Emerg.tb <- table(Base_GECAT_Oficina.6$Emerg)
prop.table(Emerg.tb)

POST.tb <- table(Base_GECAT_Oficina.6$POST)
prop.table(POST.tb)

Country.tb <- table(Base_GECAT_Oficina.6$Country)
prop.table(Country.tb)

NAICS_Sector.tb <- table(Base_GECAT_Oficina.6$NAICS_Sector)
prop.table(NAICS_Sector.tb)

Year.tb <- table(Base_GECAT_Oficina.6$Year)
prop.table(Year.tb)

LCS.tb <- table(Base_GECAT_Oficina.6$LCS)
prop.table(LCS.tb)

AU.tb <- table(Base_GECAT_Oficina.6$AU)
prop.table(AU.tb)

AC.tb <- table(Base_GECAT_Oficina.6$AC)
prop.table(AC.tb)

Common_Law.tb <- table(Base_GECAT_Oficina.6$Common_Law)
prop.table(Common_Law.tb)
```

## Estatística descritiva

```{r}
summary(Base_GECAT_Oficina.6)

summary(Base_GECAT_Oficina.6$SIZE_w1)
```

### Por grupos

Comparando as variáveis transformadas de tamanho da empresa por desenvolvidos e emergentes (usando across)

```{r}
EstatisticaDescritivaSIZE <- Base_GECAT_Oficina.6 %>%
  group_by(Emerg) %>%
  dplyr::summarise(across(starts_with("SIZE"), list(mean = mean, sd = sd))) %>%
  ungroup()

EstatisticaDescritivaSIZE
```

## tbl_summary

<https://www.danieldsjoberg.com/gtsummary/reference/tbl_summary.html>

-   For categorical variables the following statistics are available to display.

    -   {n} frequency

    -   {N} denominator, or cohort size

    -   {p} formatted percentage

-   For continuous variables the following statistics are available to display.

    -   {median} median

    -   {mean} mean

    -   {sd} standard deviation

    -   {var} variance

    -   {min} minimum

    -   {max} maximum

    -   {sum} sum

    -   {p##} any integer percentile, where \## is an integer from 0 to 100

    -   {foo} any function of the form foo(x) is accepted where x is a numeric vector

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  gtsummary::tbl_summary(statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"
                                          ),
                         digits = all_continuous() ~ 2,
                         missing = "no", #"ifany" = mostra missing se tiver missing, "always" = quant. de missing na variável
                         missing_text = "Missing",
                         ) %>%
  add_n() %>% # Adicionando coluna de não missing
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  as_flex_table() 
```

### Em uma janela temporal

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Year, Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  dplyr::filter(Year > 2019 & Year< 2022) %>%
  gtsummary::tbl_summary(statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"
                                          ),
                         digits = all_continuous() ~ 2,
                         missing = "no", #ifany = mostra missing se tiver missing, always = quant. de missing na variável
                         missing_text = "Missing",
                         ) %>%
  add_n() %>% # Adicionando coluna de não missing
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  as_flex_table() 
```

Renomeando as variáveis no output

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  gtsummary::tbl_summary(statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"
                                          ),
                         digits = all_continuous() ~ 2,
                         missing = "no", #ifany = mostra missing se tiver missing, always = quant. de missing na variável
                         missing_text = "Missing",
                         label = list(Emerg ~ "Emergentes", 
                                      SIZE_w1 ~ "Tamanho",
                                      BTM ~ "BTM",
                                      COV ~ "Covid",
                                      Country ~"País",
                                      LCS ~ "Ciclo de Vida", 
                                      AUD ~ "Auditor")
                         ) %>%
  add_n() %>% # Adicionando coluna de não missing
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  as_flex_table() 
```

### Por grupo de tratamento(Emergentes) e controle(Desenvolvidos) - 2 grupos

Gerando tabela

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  dplyr::mutate(Emerg = factor(Emerg, labels = c(0, 1))) %>%
  gtsummary::tbl_summary(by = Emerg,
                         statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"),
                         digits = all_continuous() ~ 2,
                         missing = "no", #ifany = mostra missing se tiver missing, always = quant. de missing na variável
                         missing_text = "Missing",
                         label = list(Emerg ~ "Emergentes", 
                                      SIZE_w1 ~ "Tamanho",
                                      BTM ~ "BTM",
                                      COV ~ "Covid",
                                      Country ~"País",
                                      LCS ~ "Ciclo de Vida", 
                                      AUD ~ "Auditor")
                                      ) %>%
  add_n() %>% # Adicionando coluna de não missing
  add_p(list(all_continuous() ~ "t.test",
             all_categorical() ~ "kruskal.test")) %>%
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  bold_p() %>%
  as_flex_table() 
```

Exportando em word

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  dplyr::mutate(Emerg = factor(Emerg, labels = c(0, 1))) %>%
  gtsummary::tbl_summary(by = Emerg,
                         statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"),
                         digits = all_continuous() ~ 2,
                         missing = "no", #ifany = mostra missing se tiver missing, always = quant. de missing na variável
                         missing_text = "Missing",
                         label = list(Emerg ~ "Emergentes", 
                                      SIZE_w1 ~ "Tamanho",
                                      BTM ~ "BTM",
                                      COV ~ "Covid",
                                      Country ~"País",
                                      LCS ~ "Ciclo de Vida", 
                                      AUD ~ "Auditor")
                                      ) %>%
  add_n() %>% # Adicionando coluna de não missing
  add_p(list(all_continuous() ~ "t.test",
             all_categorical() ~ "kruskal.test")) %>%
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  bold_p() %>%
  as_flex_table() %>%
  save_as_docx("Tab2", path = "C:/Users/Usuário/OneDrive/Oficina Tratamento de Dados/descritiva2grupos.docx")
```

### Por País - 3 grupos

```{r}
#library(tidyverse)
#library(gtsummary)
#library(flextable)

Base_GECAT_Oficina.6 %>%
  dplyr::select(Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD) %>%
  dplyr::mutate(Country = factor(Country, labels = c("Brazil", "Argentina", "Canada"))) %>%
  gtsummary::tbl_summary(by = Country,
                         statistic = list(all_continuous() ~ "{median}, {mean} ({sd}) {p25}, {p75}",
                                          all_categorical() ~ "{n} ({p}%)"),
                         digits = all_continuous() ~ 2,
                         missing = "no",
                         missing_text = "Missing",
                         label = list(Emerg ~ "Emergentes", 
                                      SIZE_w1 ~ "Tamanho",
                                      BTM ~ "BTM",
                                      COV ~ "Covid",
                                      Country ~"País",
                                      LCS ~ "Ciclo de Vida", 
                                      AUD ~ "Auditor")
                                      ) %>%
  add_n() %>% # Adicionando coluna de não missing
  add_p(list(all_continuous() ~ "t.test",
             all_categorical() ~ "kruskal.test")) %>%
  modify_header(label ~ "**Variáveis**") %>%
  modify_caption("Tabela X. Estatística Descritiva") %>%
  italicize_levels() %>%
  bold_p() %>%
  as_flex_table() 
#%>%
 # save_as_docx("Tab2", path = "C:/Users/Usuário/OneDrive/Oficina Tratamento de Dados/descritiva3grupos.docx")
```

# Preparar uma base pra começar a trabalhar

Fonte dos procedimentos: <https://r4ds.had.co.nz/many-models.html>

```{r}
#Selecionando as variáveis de interesse - pode ser por nome ou número da coluna
Base_GECAT_Final <- Base_GECAT_Oficina.6 %>%
  dplyr::select(Ticker, Year, NAICS_Sector, Emerg, SIZE_w1, BTM, COV, Country, LCS, AUD)                  

#excluindo as observações com NA, NaN e Inf
Base_GECAT_Final <- Base_GECAT_Final %>%
  filter_all(all_vars(!is.infinite(.))) %>%
  na.omit()

summary(Base_GECAT_Final)
```

# Exportar a base em Excel

```{r}
write_xlsx(as.data.frame(Base_GECAT_Final), path = 'C:/Users/Usuário/OneDrive/Oficina Tratamento de Dados/Base GECAT.xlsx')
```
